<html>
<head>
  <title>Titanic</title>
  <basefont face="微软雅黑" size="2" />
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  <meta name="exporter-version" content="Evernote Windows/307027 (zh-CN, DDL); Windows/6.1.0 (Win32);"/>
  <style>
    body, td {
      font-family: 微软雅黑;
      font-size: 10pt;
    }
  </style>
</head>
<body>
<a name="538"/>
<h1>Titanic</h1>

<div>
<span><div><div><span style="-en-paragraph: true; font-weight: bold;">Kaggle竞赛项目的全过程：</span></div><ol><li>了解问题背景：对竞赛的背景进行了解</li><li>下载数据</li><li>分析数据：Explore Data Analysis</li><li>数据处理和特征工程：Data Process and FeatureEngineering</li><li>模型选择：Model Select</li><li>提交结果：Submission</li></ol><div><br/></div><div><br/></div><div><span style="font-weight: bold;">第一步：了解问题背景</span></div><div><span style="font-weight: bold;"><br/></span></div><div><br/></div><div><span style="font-weight: bold;">第二步：下载数据</span></div><div><b>要用到google api，电脑要连外网，所以现在是手机下载，百度云发到电脑上</b></div><ul><li><span style="font-weight: bold;">gender_submission.csv</span>：我们需要提交的示例文件</li><li><span style="font-weight: bold;">test.csv</span>：测试数据集</li><li><span style="font-weight: bold;">train.csv</span>：训练数据集</li></ul><div><span style="font-weight: bold;"><br/></span></div><div><span style="font-weight: bold;">第三步：读取数据，分析数据</span></div><div><img src="Titanic_files/Image.jpg" type="image/jpeg" data-filename="Image.jpg" width="580"/></div><div>Pandas是目前最强大的数据分析包，没有之一。可以用.info()函数查看当前dataframe的信息。</div><div><img src="Titanic_files/Image [1].jpg" type="image/jpeg" data-filename="Image.jpg" width="513"/></div><div><span style="-en-paragraph: true;">训练数据集有891行12列。各列代表的信息：</span></div><div style="-en-paragraph: true; margin-top: 1em; margin-bottom: 1em;"><span style="-en-paragraph: true;">·</span> <span style="-en-paragraph: true; font-weight: bold;">PassengerId：一个用以标记每个乘客的数字id</span></div><div style="-en-paragraph: true; margin-top: 1em; margin-bottom: 1em;"><span style="-en-paragraph: true;">·</span> <span style="-en-paragraph: true; font-weight: bold;">Survived：标记乘客是否幸存——幸存(1)、死亡(0)。我们将预测这一列。</span></div><div style="-en-paragraph: true; margin-top: 1em; margin-bottom: 1em;"><span style="-en-paragraph: true;">·</span> <span style="-en-paragraph: true; font-weight: bold;">Pclass：标记乘客所属船层——第一层(1),第二层(2),第三层(3)。</span></div><div style="-en-paragraph: true; margin-top: 1em; margin-bottom: 1em;"><span style="-en-paragraph: true;">·</span> <span style="-en-paragraph: true; font-weight: bold;">Name：乘客名字。</span></div><div style="-en-paragraph: true; margin-top: 1em; margin-bottom: 1em;"><span style="-en-paragraph: true;">·</span> <span style="-en-paragraph: true; font-weight: bold;">Sex：乘客性别——男male、女female</span></div><div style="-en-paragraph: true; margin-top: 1em; margin-bottom: 1em;"><span style="-en-paragraph: true;">·</span> <span style="-en-paragraph: true; font-weight: bold;">Age：乘客年龄。部分。</span></div><div style="-en-paragraph: true; margin-top: 1em; margin-bottom: 1em;"><span style="-en-paragraph: true;">·</span> <span style="-en-paragraph: true; font-weight: bold;">SibSp：船上兄弟姐妹和配偶的数量。</span></div><div style="-en-paragraph: true; margin-top: 1em; margin-bottom: 1em;"><span style="-en-paragraph: true;">·</span> <span style="-en-paragraph: true; font-weight: bold;">Parch：船上父母和孩子的数量。</span></div><div style="-en-paragraph: true; margin-top: 1em; margin-bottom: 1em;"><span style="-en-paragraph: true;">·</span> <span style="-en-paragraph: true; font-weight: bold;">Ticket：乘客的船票号码。</span></div><div style="-en-paragraph: true; margin-top: 1em; margin-bottom: 1em;"><span style="-en-paragraph: true;">·</span> <span style="-en-paragraph: true; font-weight: bold;">Fare：乘客为船票付了多少钱。</span></div><div style="-en-paragraph: true; margin-top: 1em; margin-bottom: 1em;"><span style="-en-paragraph: true;">·</span> <span style="-en-paragraph: true; font-weight: bold;">Cabin：乘客住在哪个船舱。</span></div><div><span style="-en-paragraph: true;">·</span> <span style="-en-paragraph: true; font-weight: bold;">Embarked：乘客从哪个地方登上泰坦尼克号。</span></div><div><br/></div><div><br/></div><div><br/></div><div><span style="font-weight: bold;"><font style="font-size: 14pt; color: rgb(227, 0, 0);">第四步、数据处理和特征工程</font></span></div><div>数据分析过程中，了解业务背景是非常重要的。</div><div>大家记得在泰坦尼克号沉没的时候，船长说了一句话：<span style="font-weight: bold;">小孩和妇女先走，男人留下。</span></div><div><font style="font-size: 12pt; color: rgb(227, 0, 0);"><b>知道这个背景以后，在做数据处理的时候我们就应该知道Sex和Age两个字段应该是关键</b></font>。</div><div><br/></div><div><span style="font-weight: bold;">（1）Age处理，填充缺失值</span></div><div>Age字段共有714，缺失值比较多，我们采用Age的平均值进行填充。</div><div><img src="Titanic_files/Image [2].jpg" type="image/jpeg" data-filename="Image.jpg" style="width: 574.417px; transform: translate3d(31.7917px, 213.633px, 0px) scale3d(1.00972, 1.00972, 1); opacity: 1;"/></div><div>注意：我们需要同时对训练集和测试集做相同的处理。</div><div><br/></div><div><span style="font-weight: bold;">（2）Sex处理，属性变换</span></div><div>Sex有两个属性：male和female，代表男性和女性。为了方便分类器处理，我们用1和0来代替。</div><div><img src="Titanic_files/Image [3].jpg" type="image/jpeg" data-filename="Image.jpg" style="font-weight: bold;" width="580"/></div><div><br/></div><div><br/></div><div><span style="font-weight: bold;">（3）特征选择</span></div><div><span style="-en-paragraph: true;">为了最快速度上手，我们只需要选择Age和Sex两个字段。</span></div><div><img src="Titanic_files/Image [4].jpg" type="image/jpeg" data-filename="Image.jpg" width="580"/></div><div><br/></div><div><br/></div><div><br/></div><div><br/></div><div><span style="font-weight: bold;">第五步：模型选择</span></div><div>我们的任务是预测乘客是否能幸存，很明显是一个基本的二分类问题（Binary Classification）。可以用来处理二分类问题的模型主要有：感知机、Logistic回归、决策树、SVM和随机森林等，可选的模型非常多。网上有一张图，建议我们选择哪种模型应用到我们的项目中。</div><div><img src="Titanic_files/Image [5].jpg" type="image/jpeg" data-filename="Image.jpg" style="width: 574.417px; transform: translate3d(31.7917px, 98.9px, 0px) scale3d(1.04106, 1.04106, 1); opacity: 1;"/></div><div><br/></div><div><span style="-en-paragraph: true;">这里我们选择sciket-learn提供的</span><span style="-en-paragraph: true; font-weight: bold;">决策树（Decision Tree）</span><span style="-en-paragraph: true;">模型。</span></div><div><img src="Titanic_files/Image [6].jpg" type="image/jpeg" data-filename="Image.jpg" width="580"/></div><div><br/></div><div><br/></div><div><br/></div><div><br/></div><div><span style="font-weight: bold;">第六步、预测结果并提交</span></div><div>最后，将我们训练好的模型在测试集上进行测试，将结果按照要求保存下来。将结果提交到kaggle网站，计算我们的得分</div><div><span style="font-weight: bold;">（1）保存结果</span></div><div><img src="Titanic_files/Image [7].jpg" type="image/jpeg" data-filename="Image.jpg" width="580"/></div><div><br/></div><div><span style="font-weight: bold; line-height: 1.45;">（2）提交到Kaggle</span><br/></div><div><span style="-en-paragraph: true;">Kaggle提供了Submit Predictions页面，我们只需要将decision_tree.csv文件拖拽到uploadsubmission file中就可以自动上传。</span></div><div><img src="Titanic_files/Image [8].jpg" type="image/jpeg" data-filename="Image.jpg" width="417"/></div><div style="-en-paragraph: true; margin-top: 1em; margin-bottom: 1em;"><span style="-en-paragraph: true;">我们将预测结果提交到Kaggle网站，Kaggle会对我们提交的结果与kaggle后台的数据进行对比，计算出我们的准确率和得分（score）。</span></div><div><img src="Titanic_files/Image [9].jpg" type="image/jpeg" data-filename="Image.jpg" width="437"/></div><div><span style="-en-paragraph: true;">此次提交的准确率只有60.7%。</span></div><div><br/></div><div><br/></div><div><br/></div><div><br/></div><div><br/></div><div><br/></div><div><br/></div><div><br/></div><div><br/></div><div><br/></div></div></span>
</div></body></html> 